
<!DOCTYPE HTML>
<html lang="zh-tw" >
    <!-- Start book 铭东老师-上课笔记 -->
<!-- Start book 铭东老师-上课笔记 -->
    <head>
        <!-- head:start -->
<!-- head:start -->
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <title>第006天-Http协议、Http服务器、MiniWeb框架 | 铭东老师-上课笔记</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.6.7">


        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">

    <link rel="stylesheet" href="gitbook/style.css">


        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-maxiang/maxiang.css">



        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.css">



        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-splitter/splitter.css">



        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-emphasize/plugin.css">



        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-highlight/website.css">



        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-fontsettings/website.css">








    <link rel="prev" href="./第005天-SQLAlchemy.html" />


        <!-- head:end -->
<!-- head:end -->
    </head>
    <body>
        <!-- body:start -->
<!-- body:start -->

    <div class="book"
        data-level="6"
        data-chapter-title="第006天-Http协议、Http服务器、MiniWeb框架"
        data-filepath="第006天-Http协议、Http服务器、MiniWeb框架.md"
        data-basepath="."
        data-revision="Mon Sep 14 2020 10:23:11 GMT+0800 (CST)"
        data-innerlanguage="">


<div class="book-summary">
    <nav role="navigation">
        <ul class="summary">









        <li class="chapter " data-level="0" data-path="index.html">


                    <a href="./index.html">

                        <i class="fa fa-check"></i>

                        天道酬勤
                    </a>


        </li>

        <li class="chapter " data-level="1" data-path="第001天-环境搭建.html">


                    <a href="./第001天-环境搭建.html">

                        <i class="fa fa-check"></i>

                            <b>1.</b>

                        第001天-环境搭建
                    </a>


        </li>

        <li class="chapter " data-level="2" data-path="第002天-复习Python进阶.html">


                    <a href="./第002天-复习Python进阶.html">

                        <i class="fa fa-check"></i>

                            <b>2.</b>

                        第002天-复习Python进阶
                    </a>


        </li>

        <li class="chapter " data-level="3" data-path="第003天-复习Python进阶、正则.html">


                    <a href="./第003天-复习Python进阶、正则.html">

                        <i class="fa fa-check"></i>

                            <b>3.</b>

                        第003天-复习Python进阶、正则
                    </a>


        </li>

        <li class="chapter " data-level="4" data-path="第004天-SQL.html">


                    <a href="./第004天-SQL.html">

                        <i class="fa fa-check"></i>

                            <b>4.</b>

                        第004天-SQL
                    </a>


        </li>

        <li class="chapter " data-level="5" data-path="第005天-SQLAlchemy.html">


                    <a href="./第005天-SQLAlchemy.html">

                        <i class="fa fa-check"></i>

                            <b>5.</b>

                        第005天-SQLAlchemy
                    </a>


        </li>

        <li class="chapter active" data-level="6" data-path="第006天-Http协议、Http服务器、MiniWeb框架.html">


                    <a href="./第006天-Http协议、Http服务器、MiniWeb框架.html">

                        <i class="fa fa-check"></i>

                            <b>6.</b>

                        第006天-Http协议、Http服务器、MiniWeb框架
                    </a>


        </li>




            <li class="divider"></li>
            <li>
                <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                    本書使用 GitBook 釋出
                </a>
            </li>

        </ul>
    </nav>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header" role="navigation">
    <!-- Actions Left -->


    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="./" >铭东老师-上课笔记</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1" role="main">
                <div class="page-inner">


                    <section class="normal" id="section-">

                        <h1 id="&#x7B2C;006&#x5929;http&#x534F;&#x8BAE;&#x3001;http&#x670D;&#x52A1;&#x5668;&#x3001;miniweb&#x6846;&#x67B6;">&#x7B2C;006&#x5929;-HTTP&#x534F;&#x8BAE;&#x3001;HTTP&#x670D;&#x52A1;&#x5668;&#x3001;MiniWeb&#x6846;&#x67B6;</h1>
<h2 id="&#x4E00;&#x3001;&#x76EE;&#x6807;">&#x4E00;&#x3001;&#x76EE;&#x6807;</h2>
<ol>
<li>&#x771F;&#x6B63;&#x7406;&#x89E3;HTTP&#x534F;&#x8BAE;</li>
<li>&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;HTTP&#x670D;&#x52A1;&#x5668;</li>
<li>&#x7406;&#x89E3;WSGI&#x534F;&#x8BAE;</li>
<li>&#x660E;&#x767D;Server&#x4E0E;web framework&#x7684;&#x533A;&#x522B;</li>
</ol>
<h2 id="&#x4E8C;&#x3001;&#x7ED3;&#x679C;">&#x4E8C;&#x3001;&#x7ED3;&#x679C;</h2>
<h3 id="1-&#x534F;&#x8BAE;&#x3001;ip&#x3001;&#x7AEF;&#x53E3;">1. &#x534F;&#x8BAE;&#x3001;ip&#x3001;&#x7AEF;&#x53E3;</h3>
<p>&#x534F;&#x8BAE;&#xFF1A;&#x901A;&#x4FD7;&#x7684;&#x8BF4;&#x5C31;&#x662F;&#x53CC;&#x65B9;&#x4E4B;&#x95F4;&#x7684;&#x7EA6;&#x5B9A;</p>
<p>&#x7F51;&#x7EDC;&#x534F;&#x8BAE;&#xFF1A;&#x5C31;&#x662F;&#x8BA1;&#x7B97;&#x673A;&#x4E4B;&#x95F4;&#x6C9F;&#x901A;&#x6570;&#x636E;&#x7684;&#x534F;&#x8BAE;</p>
<p>&#x5E38;&#x89C1;&#x7684;&#x7F51;&#x7EDC;&#x534F;&#x8BAE;&#xFF1A;UDP&#x3001;TCP&#x3001;IP&#x3001;HTTP&#xFF08;S&#xFF09;&#x3001;ARP&#x3001;RARP&#x3001;SMTP&#x3001;FTP&#x3001;TFTP</p>
<p>&#x533A;&#x5206;&#xFF1A;</p>
<p>TCP/IP&#x534F;&#x8BAE;&#xFF08;&#x5BB6;&#x65CF;&#xFF09;</p>
<p>TCP&#x3001;IP&#x534F;&#x8BAE;&#xFF08;&#x5C31;&#x662F;TCP&#x548C;IP&#x534F;&#x8BAE;&#xFF09;</p>
<p>&#x6982;&#x5FF5;&#xFF1A;</p>
<p>MAC&#x5730;&#x5740;&#xFF1A;&#x4E00;&#x4E2A;&#x5E8F;&#x5217;&#x53F7;&#x6807;&#x8BB0;&#x4E86;&#x7F51;&#x5361;&#x7684;&#x5730;&#x5740;</p>
<p>IP&#x5730;&#x5740;&#xFF1A;&#x4E00;&#x4E2A;&#x5E8F;&#x5217;&#x53F7;&#x6807;&#x8BB0;&#x4E86;&#x903B;&#x8F91;&#x4E0A;&#x7684;&#x4E00;&#x53F0;&#x7535;&#x8111;</p>
<p>PORT&#x7AEF;&#x53E3;&#xFF1A;&#x6807;&#x8BB0;&#x7535;&#x8111;&#x4E0A;&#x7684;&#x8F6F;&#x4EF6;</p>
<p>&#x7AEF;&#x53E3;&#x8981;&#x6CE8;&#x610F;&#x70B9;&#xFF1A;TCP&#x3001;UDP&#x662F;2&#x5957;&#x534F;&#x8BAE;&#xFF0C;&#x4E00;&#x6B21;&#x90FD;&#x53EF;&#x4EE5;&#x7528;&#x540C;&#x4E00;&#x4E2A;&#x6570;&#x503C;&#x7684;&#x7AEF;&#x53E3;&#xFF08;2425&#xFF09;</p>
<h3 id="2-tcp&#x534F;&#x8BAE;">2. TCP&#x534F;&#x8BAE;</h3>
<p>&#x91CD;&#x70B9;&#x8981;&#x7406;&#x89E3;&#xFF1A;&#x901A;&#x8FC7;&#x534F;&#x8BAE;2&#x53F0;&#x7535;&#x8111;&#x4E4B;&#x95F4;&#x5230;&#x5E95;&#x600E;&#x6837;&#x6C9F;&#x901A;&#x5462;&#xFF1F;</p>
<p>&#x7528;&#x53D1;&#x5FEB;&#x901F;&#x3001;&#x53D6;&#x5FEB;&#x9012;&#x6765;&#x7406;&#x89E3;&#x7F51;&#x7EDC;&#x7684;&#x6536;&#x53D1;&#x8FC7;&#x7A0B;&#x5373;&#x53EF;</p>
<p><img src="http://img.codetutor.top/19-Python/lbi4p.png-19Python" alt="image-20200913201021509"></p>
<p><img src="assets/image-20200914085241545.png" alt="image-20200914085241545"></p>
<h3 id="2-http&#x534F;&#x8BAE;&#xFF08;&#x5F88;&#x91CD;&#x8981;&#xFF09;">2. HTTP&#x534F;&#x8BAE;&#xFF08;&#x5F88;&#x91CD;&#x8981;&#xFF09;</h3>
<p>HTTP&#x534F;&#x8BAE;&#x7528;&#x5230;&#x4E86;TCP&#xFF0C;&#x539F;&#x672C;&#x53D1;&#x9001;&#x7684;&#x201C;hello world&#x201D;&#x662F;&#x76F4;&#x63A5;&#x7ED9;TCP&#x5F53;&#x505A;&#x6570;&#x636E;&#xFF0C;&#x800C;&#x5F53;&#x6211;&#x4EEC;&#x7528;HTTP&#x6765;&#x53D1;&#x9001;helloworld&#x65F6;&#xFF0C;&#x662F;&#x5148;&#x5C06;helloworld&#x53D1;&#x9001;&#x7ED9;HTTP&#xFF0C;&#x76EE;&#x7684;&#x662F;&#x52A0;&#x4E0A;HTTP&#x534F;&#x8BAE;&#x7684;&#x5185;&#x5BB9;&#xFF0C;&#x4F8B;&#x5982;</p>
<pre><code>GET /XXXXX.HTML HTTP/1.1

hello world
</code></pre><p>&#x7136;&#x540E;&#x628A;&#x4E0A;&#x8FF0;&#x7684;&#x6574;&#x4F53;&#x5F53;&#x505A;&#x6570;&#x636E;&#x53D1;&#x9001;&#x7ED9;TCP&#xFF0C;&#x5269;&#x4E0B;&#x7684;&#x64CD;&#x4F5C;&#x4E0E;&#x4E0A;&#x4E00;&#x5C0F;&#x8282;&#x7684;&#x5185;&#x5BB9;&#x76F8;&#x540C;</p>
<p>http&#x7AEF;&#x53E3;&#xFF1A;80</p>
<p>https&#x7AEF;&#x53E3;&#xFF1A;443</p>
<p>&#x4E00;&#x822C;&#x8001;&#x767E;&#x59D3;&#x8BBF;&#x95EE;&#x7F51;&#x7AD9;&#x65F6;80&#x3001;443&#x4E0D;&#x7528;&#x5199;&#xFF0C;&#x9ED8;&#x8BA4;&#x81EA;&#x52A8;&#x586B;&#x5199;</p>
<p>&#x5982;&#x679C;URL&#x662F;http&#x5F00;&#x59CB;&#xFF0C;&#x4F8B;&#x5982;<a href="http://19python.howdoit.cn" target="_blank">http://19python.howdoit.cn</a>     ---&gt; 80</p>
<p>&#x4F8B;&#x5982; <a href="https://www.baidu.com" target="_blank">https://www.baidu.com</a>   -----&gt; 443</p>
<p>&#x9664;&#x4E86;&#x4E0A;&#x8FF0;&#x7684;80&#x3001;443&#x4E4B;&#x5916;&#xFF0C;&#x5176;&#x4ED6;&#x7684;&#x7AEF;&#x53E3;&#x5FC5;&#x987B;&#x90FD;&#x8981;&#x5199;&#x4E0A;&#xFF0C;&#x65B9;&#x5F0F;&#x5982;&#x4E0B;</p>
<pre><code>http(s)://&#x57DF;&#x540D;:&#x7AEF;&#x53E3;
</code></pre><p>&#x7F51;&#x7EDC;&#x8C03;&#x8BD5;&#x52A9;&#x624B;&#x4E0B;&#x8F7D;&#xFF1A;</p>
<ul>
<li>Windows&#x5730;&#x5740;&#xFF1A; <a href="http://19python.howdoit.cn/98-download/&#x7F51;&#x7EDC;&#x8C03;&#x8BD5;&#x52A9;&#x624B;NetAssist.exe" target="_blank">http://19python.howdoit.cn/98-download/&#x7F51;&#x7EDC;&#x8C03;&#x8BD5;&#x52A9;&#x624B;NetAssist.exe</a></li>
</ul>
<p>&#x771F;&#x6B63;&#x638C;&#x63E1;HTTP&#x7684;&#x6280;&#x5DE7;</p>
<ol>
<li>(&#x5145;&#x5F53;HTTP&#x670D;&#x52A1;&#x5668;)&#x6253;&#x5F00;&#x7F51;&#x7EDC;&#x8C03;&#x8BD5;&#x52A9;&#x624B;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x8BBE;&#x7F6E;&#x4E3A;TCP&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x4E3A;&#x4E86;&#x9632;&#x6B62;&#x4E0E;&#x5176;&#x4ED6;&#x7AEF;&#x53E3;&#x51B2;&#x7A81;&#xFF0C;&#x6B64;&#x65F6;&#x6211;&#x4EEC;&#x6682;&#x65F6;&#x7528;7788</li>
<li>(&#x5145;&#x5F53;HTTP&#x5BA2;&#x6237;&#x7AEF;)&#x6253;&#x5F00;&#x8C37;&#x6B4C;&#x6D4F;&#x89C8;&#x5668;&#xFF08;Chrom&#x6D4F;&#x89C8;&#x5668;&#xFF09;&#x5728;&#x5730;&#x5740;&#x680F;&#x8F93;&#x5165;: <a href="http://127.0.0.1:7788" target="_blank">http://127.0.0.1:7788</a></li>
<li>&#x6253;&#x5F00;&#x8C37;&#x6B4C;&#x6D4F;&#x89C8;&#x5668;&#x5F00;&#x53D1;&#x8005;&#x6A21;&#x5F0F;--&gt;network &#x4E2D;&#x68C0;&#x67E5;&#x6574;&#x4E2A;&#x8BBF;&#x95EE;&#x8FC7;&#x7A0B;</li>
</ol>
<p>&#x51C6;&#x5907;&#x597D;&#x4E4B;&#x540E;&#x7684;&#x6837;&#x5B50;&#x5982;&#x4E0B;&#xFF1A;</p>
<p><img src="http://img.codetutor.top/19-Python/012wg.png-19Python" alt="image-20200913211839464"></p>
<p>&#x70B9;&#x51FB;&#x5730;&#x5740;&#x680F;&#xFF0C;&#x7136;&#x540E;&#x6309;&#x4E0B;&#x56DE;&#x8F66;&#xFF0C;&#x5C31;&#x80FD;&#x770B;&#x5230;&#x8BBF;&#x95EE;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x5982;&#x4E0B;&#x56FE;&#x6240;&#x793A;&#xFF1A;</p>
<p><img src="http://img.codetutor.top/19-Python/q2pts.png-19Python" alt="image-20200913212047611"></p>
<p><img src="assets/iShot2020-09-14 09.24.50.png" alt="iShot2020-09-14 09.24.50"></p>
<p><img src="assets/iShot2020-09-14 09.44.54.png" alt="iShot2020-09-14 09.44.54"></p>
<p>&#x53EF;&#x4EE5;&#x7528;&#x8C37;&#x6B4C;&#x6D4F;&#x89C8;&#x5668;&#xFF08;&#x6216;&#x8005;&#x706B;&#x72D0;&#x6D4F;&#x89C8;&#x5668;&#xFF09;&#x901A;&#x8FC7;&#x68C0;&#x67E5;--&gt;network&#x8FDB;&#x884C;&#x67E5;&#x770B;</p>
<p><img src="assets/image-20200914095050886.png" alt="image-20200914095050886"></p>
<h3 id="4-http&#x670D;&#x52A1;&#x5668;&#xFF08;&#x7B80;&#x5355;&#x5B9E;&#x73B0;&#xFF09;">4. HTTP&#x670D;&#x52A1;&#x5668;&#xFF08;&#x7B80;&#x5355;&#x5B9E;&#x73B0;&#xFF09;</h3>
<h3 id="5-http&#x670D;&#x52A1;&#x5668;&#xFF08;&#x8FD4;&#x56DE;&#x9700;&#x8981;&#x7684;&#x9875;&#x9762;&#x5185;&#x5BB9;&#xFF09;">5. HTTP&#x670D;&#x52A1;&#x5668;&#xFF08;&#x8FD4;&#x56DE;&#x9700;&#x8981;&#x7684;&#x9875;&#x9762;&#x5185;&#x5BB9;&#xFF09;</h3>
<h3 id="6-http&#x670D;&#x52A1;&#x5668;&#xFF08;&#x7528;&#x7C7B;&#x91CD;&#x6784;&#xFF09;">6. HTTP&#x670D;&#x52A1;&#x5668;&#xFF08;&#x7528;&#x7C7B;&#x91CD;&#x6784;&#xFF09;</h3>
<h3 id="7-&#x7406;&#x89E3;wsgi&#x534F;&#x8BAE;">7. &#x7406;&#x89E3;WSGI&#x534F;&#x8BAE;</h3>
<h3 id="8-server&#x4E0E;web-framework&#x7684;&#x533A;&#x522B;">8. Server&#x4E0E;web framework&#x7684;&#x533A;&#x522B;</h3>
<h3 id="9-&#x901A;&#x8FC7;wsgi&#x5B9E;&#x73B0;http-server&#x4E0E;-web-framework&#x4E4B;&#x95F4;&#x6570;&#x636E;&#x4F20;&#x9012;">9. &#x901A;&#x8FC7;WSGI&#x5B9E;&#x73B0;HTTP Server&#x4E0E; Web Framework&#x4E4B;&#x95F4;&#x6570;&#x636E;&#x4F20;&#x9012;</h3>


                    </section>


                </div>
            </div>
        </div>


        <a href="./第005天-SQLAlchemy.html" class="navigation navigation-prev navigation-unique" aria-label="Previous page: 第005天-SQLAlchemy"><i class="fa fa-angle-left"></i></a>


    </div>
</div>


<script src="gitbook/app.js"></script>


    <script src="gitbook/plugins/gitbook-plugin-maxiang/maxiang.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-splitter/splitter.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-sharing/buttons.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>



    <script src="gitbook/plugins/gitbook-plugin-livereload/plugin.js"></script>


<script>
require(["gitbook"], function(gitbook) {
    var config = {"maxiang":{},"toggle-chapters":{},"splitter":{},"emphasize":{},"book-summary-scroll-position-saver":{},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"livereload":{}};
    gitbook.start(config);
});
</script>

        <!-- body:end -->
<!-- body:end -->
    </body>
    <!-- End of book 铭东老师-上课笔记 -->
<!-- End of book 铭东老师-上课笔记 -->
</html>
